﻿

using static System.Formats.Asn1.AsnWriter;
using System.Collections.Generic;
using System.Diagnostics;

namespace ctolua.Models.Enum
{
    public enum EKeyboardKey
    {
        NONE = 0x00,
        ESCAPE = 0x01,
        KEY_1 = 0x02,
        KEY_2 = 0x03,
        KEY_3 = 0x04,
        KEY_4 = 0x05,
        KEY_5 = 0x06,
        KEY_6 = 0x07,
        KEY_7 = 0x08,
        KEY_8 = 0x09,
        KEY_9 = 0x0A,
        KEY_0 = 0x0B,
        MINUS = 0x0C,
        EQUAL = 0x0D,
        BACKSPACE = 0x0E,
        TAB = 0x0F,
        Q = 0x10,
        W = 0x11,
        E = 0x12,
        R = 0x13,
        T = 0x14,
        Y = 0x15,
        U = 0x16,
        I = 0x17,
        O = 0x18,
        P = 0x19,
        LBRACKET = 0x1A,
        RBRACKET = 0x1B,
        RETURN = 0x1C,
        LCTRL = 0x1D,
        A = 0x1E,
        S = 0x1F,
        D = 0x20,
        F = 0x21,
        G = 0x22,
        H = 0x23,
        J = 0x24,
        K = 0x25,
        L = 0x26,
        SEMICOLON = 0x27,
        APOSTROPHE = 0x28,
        GRAVE = 0x29,
        LSHIFT = 0x2A,
        BACKSLASH = 0x2B,
        Z = 0x2C,
        X = 0x2D,
        C = 0x2E,
        V = 0x2F,
        B = 0x30,
        N = 0x31,
        M = 0x32,
        COMMA = 0x33,
        PERIOD = 0x34,
        SLASH = 0x35,
        RSHIFT = 0x36,
        NUM_STAR = 0x37,
        LALT = 0x38,
        SPACE = 0x39,
        CAPSLOCK = 0x3A,
        F1 = 0x3B,
        F2 = 0x3C,
        F3 = 0x3D,
        F4 = 0x3E,
        F5 = 0x3F,
        F6 = 0x40,
        F7 = 0x41,
        F8 = 0x42,
        F9 = 0x43,
        F10 = 0x44,
        PAUSE = 0x45,
        SCROLL_LOCK = 0x46,
        NUM_7 = 0x47,
        NUM_8 = 0x48,
        NUM_9 = 0x49,
        NUM_MINUS = 0x4A,
        NUM_4 = 0x4B,
        NUM_5 = 0x4C,
        NUM_6 = 0x4D,
        NUM_ADD = 0x4E,
        NUM_1 = 0x4F,
        NUM_2 = 0x50,
        NUM_3 = 0x51,
        NUM_0 = 0x52,
        NUM_PERIOD = 0x53,
        F11 = 0x57,
        F12 = 0x58,
        NUM_ENTER = 0x9C,
        RCTRL = 0x9D,
        NUM_COMMA = 0xB3,
        NUM_SLASH = 0xB5,
        SYSRQ = 0xB7,
        R_ALT = 0xB8,
        NUM_LOCK = 0xC5,
        HOME = 0xC7,
        UPARROW = 0xC8,
        PAGEUP = 0xC9,
        LEFTARROW = 0xCB,
        RIGHTARROW = 0xCD,
        END = 0xCF,
        DOWNARROW = 0xD0,
        PAGEDOWN = 0xD1,
        INSERT = 0xD2,
        DELETE = 0xD3,
        LWIN = 0xDB,
        RWIN = 0xDC,
        APPS = 0xDD,
    }

    public static class EKeyboardKeys
    {
        public static Dictionary<string, int> Keys = new Dictionary<string, int>
        {
            {"NONE", 0x00},
            {"ESCAPE", 0x01},
            {"KEY_1", 0x02},
            {"KEY_2", 0x03},
            {"KEY_3", 0x04},
            {"KEY_4", 0x05},
            {"KEY_5", 0x06},
            {"KEY_6", 0x07},
            {"KEY_7", 0x08},
            {"KEY_8", 0x09},
            {"KEY_9", 0x0A},
            {"KEY_0", 0x0B},
            {"MINUS", 0x0C},
            {"EQUAL", 0x0D},
            {"BACKSPACE", 0x0E},
            {"TAB", 0x0F},
            {"Q", 0x10},
            {"W", 0x11},
            {"E", 0x12},
            {"R", 0x13},
            {"T", 0x14},
            {"Y", 0x15},
            {"U", 0x16},
            {"I", 0x17},
            {"O", 0x18},
            {"P", 0x19},
            {"LBRACKET", 0x1A},
            {"RBRACKET", 0x1B},
            {"RETURN", 0x1C},
            {"LCTRL", 0x1D},
            {"A", 0x1E},
            {"S", 0x1F},
            {"D", 0x20},
            {"F", 0x21},
            {"G", 0x22},
            {"H", 0x23},
            {"J", 0x24},
            {"K", 0x25},
            {"L", 0x26},
            {"SEMICOLON", 0x27},
            {"APOSTROPHE", 0x28},
            {"GRAVE", 0x29},
            {"LSHIFT", 0x2A},
            {"BACKSLASH", 0x2B},
            {"Z", 0x2C},
            {"X", 0x2D},
            {"C", 0x2E},
            {"V", 0x2F},
            {"B", 0x30},
            {"N", 0x31},
            {"M", 0x32},
            {"COMMA", 0x33},
            {"PERIOD", 0x34},
            {"SLASH", 0x35},
            {"RSHIFT", 0x36},
            {"NUM_STAR", 0x37},
            {"LALT", 0x38},
            {"SPACE", 0x39},
            {"CAPSLOCK", 0x3A},
            {"F1", 0x3B},
            {"F2", 0x3C},
            {"F3", 0x3D},
            {"F4", 0x3E},
            {"F5", 0x3F},
            {"F6", 0x40},
            {"F7", 0x41},
            {"F8", 0x42},
            {"F9", 0x43},
            {"F10", 0x44},
            {"PAUSE", 0x45},
            {"SCROLL_LOCK", 0x46},
            {"NUM_7", 0x47},
            {"NUM_8", 0x48},
            {"NUM_9", 0x49},
            {"NUM_MINUS", 0x4A},
            {"NUM_4", 0x4B},
            {"NUM_5", 0x4C},
            {"NUM_6", 0x4D},
            {"NUM_ADD", 0x4E},
            {"NUM_1", 0x4F},
            {"NUM_2", 0x50},
            {"NUM_3", 0x51},
            {"NUM_0", 0x52},
            {"NUM_PERIOD", 0x53},
            {"F11", 0x57},
            {"F12", 0x58},
            {"NUM_ENTER", 0x9C},
            {"RCTRL", 0x9D},
            {"NUM_COMMA", 0xB3},
            {"NUM_SLASH", 0xB5},
            {"SYSRQ", 0xB7},
            {"R_ALT", 0xB8},
            {"NUM_LOCK", 0xC5},
            {"HOME", 0xC7},
            {"UPARROW", 0xC8},
            {"PAGEUP", 0xC9},
            {"LEFTARROW", 0xCB},
            {"RIGHTARROW", 0xCD},
            {"END", 0xCF},
            {"DOWNARROW", 0xD0},
            {"PAGEDOWN", 0xD1},
            {"INSERT", 0xD2},
            {"DELETE", 0xD3},
            {"LWIN", 0xDB},
            {"RWIN", 0xDC},
            {"APPS", 0xDD},

        };
    }
}
